﻿// Making the Grade POJ - 3666.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

using namespace std;
//https://vjudge.csgrandeur.cn/problem/POJ-3666
/*
一条笔直的土路连接着 FJ 农场的两块田地，但它的海拔高度变化却超出了 FJ 的想象。
他的牛不介意爬上或爬下一个斜坡，但它们不喜欢山丘和山谷交替出现。
FJ 想在道路上增加或减少泥土，使其成为一个单调的斜坡（向上或向下倾斜）。

给你 N 个整数 A1, ... , AN（1 ≤ N ≤ 2,000），
描述沿路 N 个等间距位置的海拔高度（0 ≤ Ai ≤ 1,000,000,000），
从第一块田地开始，到另一块田地结束。
FJ 希望将这些高程调整为一个新的序列 B1, .... , BN，该序列要么不递增，要么不递减。
由于在道路沿线的任何位置增加或减少泥土的成本相同，因此修改道路的总成本为

|a1 - b1| + |a2 - b2| + ... + |AN - BN |
请计算平整道路使其成为连续斜坡的最小成本。
FJ 很高兴地告诉您，有符号的 32 位整数当然可以用来计算答案。

输入
* 第 1 行： 一个整数： N
* 第 2...N+1 行： 第 i+1 行包含一个整数高程： Ai

输出
* 第 1 行： 单个整数，即 FJ 将其土路平整为高程不递增或不递减的最小成本。
*/



int main()
{
    std::cout << "Hello World!\n";
}
